package com.shaozj.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.shaozj.system.model.entity.SysUser;
import com.shaozj.system.model.form.UserForm;
import com.shaozj.system.model.query.UserPageQuery;
import com.shaozj.system.model.vo.UserExportVO;
import com.shaozj.system.model.vo.UserPageVO;
import com.shaozj.system.model.vo.UserProfileVO;

import java.util.List;

/**
 * 用户业务实现接口
 */
public interface SysUserService extends IService<SysUser> {

    /**
     *
     * @param queryParam
     * @return
     */
    public IPage<UserPageVO> getUserPage(UserPageQuery queryParam);

    /**
     * 保存用户信息
     * @param userForm
     * @return
     */
    public boolean saveUser(UserForm userForm);

    /**
     * 获取用户详情
     * @param userId
     * @return
     */
    public UserForm getUserFormData(Long userId);

    /**
     * 编辑用户信息
     * @param userForm 用户表单对象
     * @return  是否更新成功
     */
    public boolean updateUser(Long userId, UserForm userForm);

    /**
     * 删除用户
     * @param idsStr 用户ID，多个以英文逗号分割
     * @return 是否删除成功
     */
    public boolean deleteUsers(String idsStr);

    /**
     * 更新用户密码
     * @param userId 用户ID
     * @param password 用户密码
     * @return  是否更新成功
     */
    public boolean updatePassword(Long userId, String password);

    /**
     * 获取导出用户列表
     * @param queryParams
     * @return
     */
    public List<UserExportVO> listExportUsers(UserPageQuery queryParams);

    /**
     * 获取用户个人中心信息
     * @return
     */
    public UserProfileVO getUserProfile();
}
